#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>

int main(int argc, char const *argv[])
{
    // 打开读文件流
    int fd1 = open("love.txt", O_RDONLY);
    if (fd1 == -1)
    {
        printf("open file error\n");
        return -1;
    }
    
    // 打开写文件流
    int fd2 = open("love2.txt",  O_CREAT | O_WRONLY | O_APPEND, 0644);
    if (fd2 == -1)
    {
        printf("open file error\n");
        close(fd1);
        return -1;
    }

    // 编读编写，并将数据打印到控制台
    char buf[1024];
    ssize_t len = 0;
    do
    {
        len = read(fd1, buf, sizeof(buf));
        // 将数据写入文件
        write(fd2, buf, len);
        // 打印数据到控制台
        write(STDOUT_FILENO, buf, len);
    } while (len > 0);
    
    // 关闭文件流
    close(fd1);
    close(fd2);

    return 0;
}
